package com.hyy.lotterysystem.controller.param;

import jakarta.validation.Valid;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

@Data
public class CreateActivityParam implements Serializable {
    /**
     * 活动名称
     */
    @NotBlank(message = "活动名称不能为空！")
    private String activityName;


    /*
    * 活动创建人id
    * */
    @NotNull(message="活动创建人id不能为空")
    private Long createUserId;

    /**
     * 描述
     */
    @NotBlank(message = "活动描述不能为空！")
    private String description;

    @Min(value = 1, message = "持续时间至少1小时")
    @NotNull
    private Integer duration;//单位小时，前端如果没有传递，默认永久活动

    /**
     * 活动关联奖品列表
     */
    @NotEmpty(message = "活动关联奖品列表不能为空！")
    @Valid//自动校验子对象：CreatePrizeByActivityParam 的字段是否有效
    private List<CreatePrizeByActivityParam> activityPrizeList;
    /**
     * 活动关联人员列表
     */
    @NotEmpty(message = "活动关联人员列表不能为空！")
    @Valid//自动校验子对象：CreateUserByActivityParam的字段是否有效
    private List<CreateUserByActivityParam> activityUserList;
}
